//
//  LBLevelFilter.h
//  OpenGLGame
//
//  Created by Nguyen Cong Huy on 4/3/13.
//  Copyright (c) 2013 UIT. All rights reserved.
//

#ifndef __OpenGLGame__LBLevelFilter__
#define __OpenGLGame__LBLevelFilter__

#include "LBFilter.h"

class LBLevelFilter : public LBFilter {
    float minInput;
    float maxInput;
    float gamma;
    float minOutput;
    float maxOutput;
    
    float minInputR;
    float maxInputR;
    float gammaR;
    float minOutputR;
    float maxOutputR;
    
    float minInputG;
    float maxInputG;
    float gammaG;
    float minOutputG;
    float maxOutputG;
    
    float minInputB;
    float maxInputB;
    float gammaB;
    float minOutputB;
    float maxOutputB;
    
    
    unsigned int minInputUniform;
    unsigned int maxInputUniform;
    unsigned int gammaUniform;
    unsigned int minOutputUniform;
    unsigned int maxOutputUniform;
    
    unsigned int minInputRUniform;
    unsigned int maxInputRUniform;
    unsigned int gammaRUniform;
    unsigned int minOutputRUniform;
    unsigned int maxOutputRUniform;
    
    unsigned int minInputGUniform;
    unsigned int maxInputGUniform;
    unsigned int gammaGUniform;
    unsigned int minOutputGUniform;
    unsigned int maxOutputGUniform;
    
    unsigned int minInputBUniform;
    unsigned int maxInputBUniform;
    unsigned int gammaBUniform;
    unsigned int minOutputBUniform;
    unsigned int maxOutputBUniform;
    
public:
    LBLevelFilter();
    
    void setMinInput(float minInput);
    void setMaxInput(float maxInput);
    void setGamma(float gamma);
    void setMinOutput(float minOutput);
    void setMaxOutput(float maxOutput);
    
    void setMinInputR(float minInputR);
    void setMaxInputR(float maxInputR);
    void setGammaR(float gammaR);
    void setMinOutputR(float minOutputR);
    void setMaxOutputR(float maxOutputR);
    
    void setMinInputG(float minInputG);
    void setMaxInputG(float maxInputG);
    void setGammaG(float gammaG);
    void setMinOutputG(float minOutputG);
    void setMaxOutputG(float maxOutputG);
    
    void setMinInputB(float minInputB);
    void setMaxInputB(float maxInputB);
    void setGammaB(float gammaB);
    void setMinOutputB(float minOutputB);
    void setMaxOutputB(float maxOutputB);
    
};

#endif
